【레포트】[초급] AWS 에서의 데이터 수집, 분석, 그리고 기계학습 #AWSSummit
안녕하세요! 클래스메소드 주식회사(Classmethod Inc.)의 김태우입니다.
저희 회사가 한국에서는 아직 잘 알려져 있지 않지만 일본에서 2018년에는 "올해의 AWS 프리미엄 파트너"로 선정되기도 한 만큼 일본 최고의 AWS 프리미엄 파트너로서 2019년에도 맹활약하고 있습니다.
2019년 6월 12일(수) 부터 2019년 6월 14일(금) 까지 치바현의 마쿠하리 멧세(幕張メッセ) 에서 AWS Summit Tokyo 2019 가 개최되었는데요, 저도 이번에 부서 차원에서 참가를 장려하여 참가하게 되었습니다.
본 글은 참가해서 들었던 세션 「【初級】AWSでのテー収集、分析、そして機械学習」에 대한 레포트입니다.
본 세션에 대하여
- 야마자키 쇼타
- 솔루션 아키텍트
- AWS Japan, 기술총합본부
목차
- 데이터 활용의 흐름과 데이터 레이크
- 최초 데이터 활용 플로우의 구축
- 기계 학습의 활용
- 정리
데이터 활용의 흐름과 목적
- 데이터를 기준으로 의사결정을 할 수 있도록
- 예를 들어 e-Commerce 사이트에서는 데이터를 활용하여 아래와 같은 일들을 처리할 수 있다.
- 취급 상품의 결정
- 판매 지역의 결정
- 상품 가격을 결정
- 상품 가격을 변경
- 상품 랭킹을 변경
- 상품 추천
크게 두가지 종류의 기술이 사용됨
- 데이터 소스를 가시화하고(BI 툴) -> 데이터 분석
- 데이터 소스를 기계학습 시켜서 추론
데이터 기반 의사결정을 위해 필요한 것
- 충분한 양의 데이터가 필요
- 데이터 분석이나 기계학습을 실행하는 구성
- 평가지표와 그것을 계산하는 구성
데이터 분석의 흐름
- 비즈니스 과제로 부터 시작
- 데이터 수집
- 데이터 분석 또는 기계학습
- 평가
아무리 뛰어난 기술을 사용하고 있더라도 비즈니스에서 당면한 문제를 풀 수 없으면 의미가 없음.
반드시 비즈니스 과제로 부터 시작하는 자세가 필요함
가장 시간이 걸리는 곳은?
- 다른 것도 다 시간 걸리지만 데이터를 전처리 하는 부분이 가장 시간이 오래걸림
- 즉, 버즈니스 적인 측면에서 봐도, 가능한 빨리 데이터를 수집하고 전처리 하는 것이 필요함
하고싶은 것은 반드시 나중에 변하고, 증가하기 마련이다
- 이커머스 사이트도 처음에는 가격정책이나 상품 관련된 정책을 정할 수 없었지만, 점점 그 중요성을 실감하고 도입한 것
데이터레이크
- 데이터베이스, 로그 파일, IoT 디바이스로부터의 데이터를 변환시키지 않고 그냥 있는 그대로를 저장함
- Amazon S3 를 활용해서 데이터레이크를 구축하는 것을 소개
왜 S3?
- 데이터를 임의의 파일형식으로 보존할 수 있다!! (이게 중요)
- 용량 제한이 없음
- 데이터 신뢰도 99.99999999% (9가 몇개인지..)
- 낮은 비용
- 다양한 권한 관리 및 암호화에 의한 시큐리티 관리
- API 에 의해 다양한 프로그램 언어나 서비스에서 연계 (이것도 중요!!)
실제로 1만개 이상의 기업이 S3 를 활용해 데이터 레이크를 구축했음.
S3 를 중심으로 한 다양한 데이터 활용 서비스 활용
- IoT
- 데이터 전송, 백업
- 데이터 아카이브
- 콘텐츠 전송
- 기계학습, AI서비스
- 가시화, BI
- 데이터 카탈로그
- ETL
- 데이터 분석
무엇부터 해야할까?
- 비즈니스 과제로 부터 시작해야함
- 데이터를 빠르게 수집하는 것이 중요하지만 그것을 목적화시켜야만 한다.
- 먼저, 일체의 데이터 활용 플로를 만들어보기를 추천한다. 예를 들어,
- 로그파일이나 DB 에서
- S3 에서 저장하고
- 가시화하고 4.의사결정과 평가를 진행한다.
최초의 데이터 활용 플로우와 구축
데이터 활용 플로우 설계시의 포인트
- 만능 툴은 존재하지 않는다. --> 다양한 툴을 활용
- 하고 싶은것은 반드시 변하게 된다 --> 마니지드 서비스를 이용
- 다루고 싶은 데이터 량도 변하기 마련 --> 스케일 아웃하기 위해 서버리스로
서버리스란?
- 프로비저닝이나 관리대상이 없음
- 처리한 부분만 비용 청구
- 사용량에 대해 자동적으로 스케일링 됨
- 가용성이 뛰어남
누가 어떻게 데이터를 이용할까? - 분석 기반
- SQL 으로 분석하는 경우에는 Amazon Athena
- 관리자가 볼때는 RedShift
- 하둡이나 스파크로 분석하고 싶다. 그리고 엔지니어가 있다 -> Amazon EMR
- BI 화면에서 분석, 비엔지니어가 볼 때는 Amazon QuickSight
- 데이터 분석가가 활용하는 경우에는 3rd part tools + Amazon Elasticsearch service
- Jupyter Notebook 을 사용하는 파이썬 분석을 하는 데이터 사이언티스트가 있다면 Amazon SageMaker
Amazon QuickSight - 서버리스의 BI 서비스
- 웹 브라우저에서 기계학습이 가능함 (서버 등은 필요 없음)
- S3 나 직접 업로드한 데이터를 이용할 수도 있음
- Athena 와 S3 를 이용하여 직접 QuickSight 에서 쿼리날리는 것도 가능함
데이터 수집
- 가능한 세세하게 데이터를 수집하는 것을 추천함
어떤 경로로 데이터를 수집할까?
- 로그 데이터는 fluentd
- IoT 데이터는 IoT Core 를 활용해서 Kinesis Data Firehose 를 통해 S3 에 저장
- 데이터베이스에서는 데이터파일 자체를 S3 에 저장하거나 AWS Glue 를 통해 S3 에 저장
- 직접 S3 으로 업로드
ETL 처리의 서버리스가 기본 방침
- 15분 이내의 소규모 처리는 S3에 저장하는 람다
- 어느정도 규모 있는 AWS Glue 의 Python Shell
- 큰 규모는 AWS Glue 의 Spark Job
심플한 데이터 활용 플로우 예
- 데이터베이스 및 로그 데이터가 S3 에 저장되고
- ETL 은 AWS Glue 나 Lambda 를 통해 다시 S3에 저장
- 이때 사용자는 QuickSight 에서 Athena 를 통해 S3 의 내용을 볼 수 있음
기계학습의 기본적인 흐름
- 과거의 데이터를 기반으로 학습하여 추론 등의 태스크 수행
기계학습에서 중요한 것
- 이것도 비즈니스 과제에서부터 출발한다.
- 기계학습으로 풀 수 있는 과제들을 이해한다. (컴퓨터 비전, 자연어 처리, 시계열 예상 등)
- 주력할 영역을 정한다. 기계학습의 모든 부분을 회사에서 직접 풀 필요는 없다. 클라우드 등을 적절히 활용하자!
QuickSight ML Insights
- 전문가가 필요없이 생각할 수 있는 인사이트 기능을 제공
- 기계학습 베이스의 이상검사
- 기계학습베이스의 예측
- 자동으로 생성되는 해설 --> 기계학습으로 나온 결과물을 이해하기 쉽게 설명해줌
AWS 가 제공하는 기계학습 서비스의 스택
- AI 서비스 : 기계학습을 깊이 있게 이해하지 않고도 어플리케이션에 적용할 수 있는 서비스
- ML 서비스 : 기계학습 모델을 고속 개발, 학습, 디플로이 할 수 있음
- ML 프레임워크 & 인프라스토락쳐 : TensorFlow, Keras
Amazon Rekognition
- 딥러닝에 의한 영상인식 서비스
- 연령이나 표정, 물체 등을 인식
AmazonPersonalize
- 기계학습 경험이 전혀 없어도 상관없이 사용할 수 있는 추천서비스
- 데이터를 읽어들이고, 검토하고, 인식하고, 알고리즘을 선택하는 등 Personalize 에서 이 모든걸 다 알아서 해줌
Amazon SageMaker
- 기계학습의 워크플로우 전체를 커버하는 매니지드 서비스
- 라벨링 -> 모델 개발 -> 학습 -> 디플로이(활용)
이해하고 싶은 것과 스킬을 합쳐서 툴을 선택
- AI 서비스 : 전혀 경험이 없는자
- ML 서비스 : 서비스에서 모델을 학습시켜서 사용
- ML 프레임워크 & 인프라스토락쳐 : 직접 알고리즘 개발 등
기계학습의 활용 예
- 앱 서버에서 Kinesis Data Firehose 를 통해 S3
- 이걸 이용해서 학습하고
- Amazon Personalize 또는 Amazon SageMaker 에서 학습한 데이터와 앱 서버에서 들어오는 데이터를 이용해 예측한다.
- 그리고 이걸 QuickSight 와 Athena 를 이용해 S3 를 볼 수 있음
정리하며
- 항상 비즈니스 문제 먼저 생각!
- 데이터 레이크는 데이터 활용의 기반이 된다.--> S3 를 활용하자
- 목적과 사용하는 사람에 맞는 툴을 선택!